﻿namespace GenericSimulator
{
    public interface IConfiguration
    {
        string Name { get; }
        void Add(string name, string value);
        void Add(string name, int value);
        void Add(string name, float value);
        void Add(string name, double value);
        void Add(string name, uint value);
        void Add(string name, short value);
        void Add(string name, long value);
        void Add(Parameter parameter);

        void Change(string name, string value);
        void Change(string name, int value);
        void Change(string name, float value);
        void Change(string name, double value);
        void Change(string name, uint value);
        void Change(string name, short value);
        void Change(string name, long value);
        void Change(string name, IRandomize generator);

        string GetString(string name);
        int GetInt(string name);
        float GetFloat(string name);
        double GetDouble(string name);
        uint GetUInt(string name);
        long GetLong(string name);
        Parameter GetParameter(string name);

        string ToString();
        void FromString(string configuration);
    }
}